CUBE CONNECT Edition Help

Control statements

All the standard Matrix statements are valid in Fratar, and a few additional ones are available. Fratar is a subset of the Matrix program. This section only describes the differences between the Matrix and Fratar control statements. For descriptions of other control statements see Matrix Program.

Fratar statements not in Matrix:

  • SETPA

Fratar keywords not in Matrix:

  • PARAMETERS MAXITERS= MAXRMSE=

  • REPORT ACOMP= PCOMP=

This section describes:

Parameters

Sets general parameters.

Keywords include:

In addition to the standard Matrix parameters (see PARAMETERS), you may specify the parameters described here.

PARAMETERS keywords

  • MATOEVERY - |K?| - Switch that can force the program to write output matrices for every iteration, instead of waiting until the last iteration.

    For large systems, not writing output matrices for each iteration saves considerable computer time, but forces another processing iteration to write the matrices after reaching convergence.

    Writing output matrices for each iteration increases run times for each iteration, but prevents the program from having to run another iteration to write the output matrices after reaching convergence.

    If you anticipate that there will be many iterations before reaching convergence, set this switch to false. If you anticipate that the process will involve only a few iterations, set this switch true.

  • MAXITERS - |KI| - Maximum number of iterations. If the MAXRMSE criterion is met, the number of iterations actually performed could be less than this value.

    The default is 9, and the max is 99.

  • MAXPURPS - |KI| - Number of purposes to process in this application. FRATAR allows up to 20 trip purposes. MAXPURPS is not required, because the program will determine the value from the detection of the values on the SETPA statements. But, if this value is provided, and it conflicts with the SETPA statements, a fatal message will be issued.

  • MAXRMSE - |KR| - Cutoff criteria. If the RMSE for a purpose does not exceed this value, a solution is assumed for the purpose.

    The default is 10, and the minimum is 0.

  • ZONES - |kI| - Highest zone number to process.

    If the number of zones cannot be ascertained from the project file or from any binary input matrices, ZONES must be provided, or the value will default to 100. If present, this value controls the application. Normally, there will be an input matrix file, so this keyword should not be required.

REPORT

Keywords include:

In addition to the REPORT keywords available for Matrix, the following are also available for Fratar:

REPORT keywords

  • ACOMP - |KIP| - Requests report comparing computed to target attractions for specified purposes. The report is in a format that is similar to the MARGINS report. The values are reported as nearest integers (without decimal places). Only the purposes specified by the keyword are reported, but they are reported for all odd iterations.

  • PCOMP - |KIP| - Same as ACOMP, but refers to productions, and refers to only even iterations.

Example

ACOMP=1-3,5 ;request reports for the specified purposes

SETPA

Establishes base productions and attractions.

Keywords include:

The SETPA statement is required; if it is not included, the program will fatally terminate.

These statements define how the production and attraction factors are to be obtained, and how many purposes are to be processed. There should be a P[]= and A[]= and MW[]= expression for every purpose beginning with 1 and continuing, monotonically, until all purposes are defined. (FRATAR allows up to 20 trip purposes.) The highest index encountered establishes the number of purposes.

If there are any holes in the purpose scheme, the program will issue a warning statement.

The Ps and As are computed from the expressions that are supplied. In most cases, the expression will simply point to a ZDATI file variable. Complex expressions are allowed, but the use of any variables in the expression could cause unpredictable results. In a purpose where the Ps and As are the same for each zone, it is acceptable to set the Ps, and then set the As equal to the Ps. The SETPA expressions are computed in the order in which they appear in the control stream, and they are computed only one time – prior to the first iteration. For each array, the expression is solved in a loop of J=1-Zones, and the results are stored in the A,P,MW [n][J] cells. The keywords may not have a zone index in the SETPA statement.

If the same purpose is referenced more than one time, the subsequent values will replace the prior values. Duplication of purposes might be helpful if values for different zones for a purpose are to be obtained from different sources, or if different INCLUDE/EXCLUDE filters are to be used (different SETPA statements must be used for different filters).

SETPA keywords

  • A - |NV| - Expression solved to set the target attraction totals for the indexed purpose.

  • AGF - |NV| - Expression solved to set the target attraction growth factors for the indexed purpose. The final totals are obtained by multiplying the growth factors by the initial input matrix totals.

  • CONTROL - |SV*| - String indicating how to adjust final target totals to enable convergence. The possible values are:

    P - Production totals control; As will be adjusted

    A - Attraction totals control; Ps will be adjusted

    PA - Both Ps and As will be adjusted to the average of the P and A totals.

    PL - Same as P, but only As in adjustable zones will be adjusted

    AL - Same as A, but only Ps in adjustable zones will be adjusted

    PAL - SameasPA,but only adjustable zones will be adjusted

  • EXCLUDE - |IP| - Processed the same as EXCLUDE on COMP statements (see COMP). If it is used, the loop will not be processed for any zones in the list. EXCLUDE filtering follows any INCLUDE filtering.

  • INCLUDE - |IP| - Processed the same as INCLUDE on COMP statements ( see COMP). If it is used, the loop will not be processed for any zones not in the list. INCLUDE filtering precedes any EXCLUDE zones.

  • MW - |NV| - Expression solved for each zone during the first iteration. The result is the matrix row for that zone. Usually, this expression will be a single variable name such as MI.n.n, but that is not required.

  • P - |NV| - Expression solved to set the target production totals for the indexed purpose.

  • PGF - |NV| - Expression solved to set the target production growth factors for the indexed purpose.

Example

Using single CONTROL keyword:

SETPA PGF[1]=zi.1.xifac, AGF[1]=PGF[1], MW[1]=mi.1.1 CONTROL=PAL

Using multiple CONTROL keywords:

SETPA P[1]=(ZI.1.P1) A[1]=(ZI.1.A1) MW[1]=1 CONTROL[1]=A
SETPA P[2]=(ZI.1.P1) A[2]=(ZI.1.A1) MW[2]=1 CONTROL[2]=P
SETPA P[3]=(ZI.1.P1) A[3]=(ZI.1.A1) MW[3]=1 CONTROL[3]=PA